﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using l1cs.server.model.Instance;
using l1cs.server.model.skill;

namespace l1cs.server.serverpackets
{
    public class S_SPMR : ServerBasePacket
    {
        private static Logger _log = Logger.getLogger( typeof( S_SPMR ).FullName );

        private byte[] _byte = null;

        public S_SPMR( L1PcInstance pc )
        {
            buildPacket( pc );
        }

        private void buildPacket( L1PcInstance pc )
        {
            writeC( Opcodes.S_OPCODE_SPMR );
            // ウィズダムポーションのSPはS_SkillBrave送信時に更新されるため差し引いておく
            if ( pc.hasSkillEffect( L1SkillId.STATUS_WISDOM_POTION ) )
            {
                writeC( pc.getSp() - pc.getTrueSp() - 2 ); // 装備増加したSP
            }
            else
            {
                writeC( pc.getSp() - pc.getTrueSp() ); // 装備増加したSP
            }
            writeC( pc.getTrueMr() - pc.getBaseMr() ); // 装備や魔法で増加したMR
        }

        override
        public byte[] getContent()
        {
            if ( _byte == null )
            {
                _byte = getBytes();
            }
            return _byte;
        }

        override
        public String getType()
        {
            return "[S] S_S_SPMR";
        }
    }
}
